﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Liquid.Collections {
	/// <summary>
	/// Represents the method that will handle an event that represents an event on a single item
	/// </summary>
	/// <typeparam name="T">The type of the item</typeparam>
	public delegate void ItemEventHandler<T>(object sender, ItemEventArgs<T> e);
	/// <summary>
	/// Provides data for an event that involves a single item
	/// </summary>
	/// <typeparam name="T">The type of the item</typeparam>
	public class ItemEventArgs<T> : EventArgs {
		/// <summary>
		/// Initializes a new instance of the <see cref="ItemEventArgs&lt;T&gt;"/> class.
		/// </summary>
		/// <param name="item">The item.</param>
		public ItemEventArgs(T item) {
			this.Item = item;
		}

		/// <summary>
		/// Gets or sets the item.
		/// </summary>
		/// <value>The item.</value>
		public T Item { get; private set; }
	}

}
